/**
 * 保存数据到sessionStorage中
 * 
 * @param key 缓存key
 * @param value 缓存数据
 */
const save2session = (key: string, value: any) => {
  // 缓存数据为对象
  if (value && typeof value === 'object') {
    sessionStorage.setItem(key, JSON.stringify(value));
  } else if (value && typeof value === 'string') {
    sessionStorage.setItem(key, value);
  }
};

/**
 * 获取sessionStorage中的数据
 * 
 * @param key 缓存key
 */
const getFromsession = (key: string, defaultValue?: any) => {
  try {
    const value = sessionStorage.getItem(key);
    if (value) {
      return JSON.parse(value);
    }
    return defaultValue;
  } catch (error) {
    return defaultValue;
  }
};

/**
 * 删除sessionStorage中的数据
 * 
 * @param key 缓存key
 */
const deleteFromsession = (key: string) => {
  sessionStorage.removeItem(key);
};

export { save2session, getFromsession, deleteFromsession };